package io;

import java.io.*;

/**
 * 缓冲流:是一对高级流,作用是加快读写效率
 * 缓冲流读写效率快的原因:
 * 1)缓冲流内部有一个8KB的字节数组,
 *      你看着是一个字节一个字节的读写,但缓冲流底层已经把它转换为块读写了
 * 缓冲流的意义:
 * 1)不同的高级流有不同的功能,但只有缓冲流才具有加速功能(块读写)
 *    其它的高级流不具备加速功能,都是字节读写,
 *    此时若又想先完成功能再加速处理,则需要流连接,将功能流连到缓冲流上
 */
public class CopyDemo3Buffered {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("开班桌面壁纸2.jpg");
        BufferedInputStream bis = new BufferedInputStream(fis);
        FileOutputStream fos = new FileOutputStream("开班桌面壁纸2_cp5.jpg");
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        long s  = System.currentTimeMillis();
        int d ;
        while ((d = bis.read())!=-1){
            bos.write(d);
        }
        long e = System.currentTimeMillis();
        System.out.println(e-s+"ms复制完成");
        bis.close();//只需关高级流,因为高级流中先关了低级流
        bos.close();

    }
}
